/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package test;

import dao.*;
import java.math.BigDecimal;
import java.util.List;
import pojos.*;


/**
 *
 * @author Usuario
 */
public class Main {
    
    public static void main(String[] args){
//        Login login=new Login();
//        login.setNombres("Gaso");
//        login.setNick("gaso2");
//        login.setClave("qwerty");
//        
//        LoginDao loginDao=new LoginDao();
//        loginDao.createLogin(login);
        
        PlanCuentasDao pcd=new PlanCuentasDao();
        List<PlanCuentas> puc=pcd.findByCod("1105");
        for(PlanCuentas pc: puc){
            System.out.println("Cod: " +pc.getCodPuc() + " Nombre: "+pc.getNombre());
        }
        
        TipoTransaccion tdt=new TipoTransaccion();
//        tdt.setCodTipo("CEG");
//        tdt.setDescripcionTipoTrans("Comprobante de egreso");
//        tdt.setTieneInterfaz(true);
        
//        TipoTransaccionDao tipoDao=new TipoTransaccionDao();
//        tdt=tipoDao.findById("FXC");
//        System.out.println("Tipo: "+ tdt.getCodTipo()+" Descr: " + 
//                tdt.getDescripcionTipoTrans());
   
//        Session sesion=HibernateUtil.getSession();
//        Transaction tx=sesion.beginTransaction();
        
//        Transaccion trans=new Transaccion();
//        trans.setTipoTransaccion(tdt);
//        trans.setNoTrans(1);
//        trans.setFechaMov(new Date());
//        trans.setFechaReg(new Date());
//        trans.setPeriodo(6);
//        trans.setAnyo(2011);
//      
//        Diario entrada=new Diario();
//        entrada.setPlanCuentas(puc.get(0));
//        entrada.setTransaccion(trans);
//        entrada.setValor(new BigDecimal(3000));
//        entrada.setDescripcion("Prueba");
//        
//        Diario entrada2 = new Diario();
//        entrada2.setPlanCuentas(puc.get(1));
//        entrada2.setTransaccion(trans);
//        entrada2.setValor(new BigDecimal(6000));
//        entrada2.setDescripcion("Prueba2");
//        
//        trans.addEntradaDiario(entrada);
//        trans.addEntradaDiario(entrada2);
//        
//        TransaccionDao transDao = new TransaccionDao();
//        transDao.createTransaction(trans);

///////////// si en el mapeo de la entidad no se defini como lazy a false y fectch a join
//////////// las relaciones no se obtienes a menos que se acceda a las entidades relacionadas
//////////// en la misma transaccion, por lo cual de esa forma seria inutil los daos
//        Session sesion=HibernateUtil.getSession();
//        sesion.beginTransaction();
//        
//        Departamentos dpto=(Departamentos) sesion.get(Departamentos.class, 76);
//        for(Object ciudad: dpto.getCiudads()){
//            System.out.println("Ciudad: "+ ((Ciudad)ciudad).getNombreCiudad());
//        }
//        
//        sesion.getTransaction().commit();
//        sesion.close();
        
        CiudadDao ciudadDao=new CiudadDao();
        for(Ciudad ciudad: ciudadDao.findByName("Caicedonia")){
            System.out.println("Ciudad: " + ciudad.getNombreCiudad() +
                    " Departamento: "+ ciudad.getDepartamentos().getNombreDep());
        }
////////// Crear un cliente y asociarlo con vehiculo
        
                
//        TipoIdDao tipoIdDao=new TipoIdDao();
//        Cliente cliente=new Cliente();
//        cliente.setIdCliente("29330754");
//        cliente.setTipoId(tipoIdDao.find("CC"));
//        cliente.setCiudad(ciudadDao.findByName("Caicedonia").get(0));
//        cliente.setPrimerNombre("Oddy");
//        cliente.setPrimerApellido("Odilio");
//        
//        Vehiculo vehic=new Vehiculo();
//        vehic.setPlaca("jsp123");
//        vehic.setMarca("Hyundai");
//        vehic.setModelo("350z");
//        vehic.setAnyo("2009");
//        vehic.addCliente(cliente);
//        
//        cliente.addVehiculo(vehic);
//        
//        ClienteDao clienteDao=new ClienteDao();
//        clienteDao.createCliente(cliente);
        
//     IvaDao ivaDao=new IvaDao();
//     CategoriaDao catDao=new CategoriaDao();
//     MarcaDao marcaDao=new MarcaDao();
//     
//     Articulo articulo=new Articulo();
//     articulo.setIva(ivaDao.findById("IVA16"));
//     articulo.setCategoria(catDao.findByDescrip("Computado").get(0));
//     articulo.setMarca(marcaDao.findByDescrip("HP").get(0));
//     articulo.setDescripcionArt("Computador portatil XXXXX");
//     articulo.setRefFabrica("Pavilion OMNI 5210-2346");
//     articulo.setMargenUtilidad(new BigDecimal(0.25));
//     articulo.setUnidadMedida("Un");
//     ArticuloDao artDao=new ArticuloDao();
//     artDao.create(articulo);
        
        DatosEmpresa datos=new DatosEmpresa();
//        DatosFactura factura=new DatosFactura();
        DatosEmpresaDao daoEmpresa=new DatosEmpresaDao();
//        
//        datos.setCodTrib("1234567890");
//        datos.setNombre("Empresa");
//        
//        factura.setRegimentrib("Regimen comun");
//        factura.setResolucionAutor("Autorizacion");
//        factura.setRangoDesde(new Long(4));
//        factura.setRangoHasta(new Long(16));
//        factura.setDatosEmpresa(datos);
//        
//        datos.addDatosFactura(factura);
//        
//        daoEmpresa.create(datos);
        List<DatosEmpresa> lista=daoEmpresa.findAll();
        for(DatosEmpresa emp:lista){
            System.out.println("Datos empresa:");
            System.out.println("Cod trib: "+ emp.getCodTrib());
            System.out.println("Ciudad: "+emp.getCiudad().getNombreCiudad());
            System.out.println("Nombre: "+emp.getNombre());
            System.out.println("Direccion: "+emp.getDireccion());
            System.out.println("Email: "+emp.getEmail());
            System.out.println("Telefono:" + emp.getTelefono());
            System.out.println("Fax: "+emp.getFax());
            System.out.println("Datos factura:");
        }
        
    }   
}

